<?php
namespace app\yunda\home;

use app\yunda\model\Order;
use app\yunda\model\User;
use app\yunda\model\Member;

class Yewuyuan extends Base {

    // 获取列表
    public function index($row=10){
        $body=request()->only('openid,order_status,page');
        if(empty($body['openid'])) return mogo_error('业务员参数不能为空');
        $ywy=User::get(['openid'=>$body['openid'],'user_type'=>1]);
        if(empty($ywy))  return mogo_error('没有该业务员');
        if(empty($body['order_status'])) $body['order_status']=2;//默认获取待取件订单
        if(empty($body['page'])) $body['page']=1;

        // 查询字段
        $map = $this->getMap();
        $Order = new Order();
        // 自定义where查询
        $map['pai_id']=$ywy['id'];
        $map['order_status']=$body['order_status'];
        $data = $Order::view('dp_yd_order',true)
            ->view('yd_user','head_img,nickname','yd_user.openid=dp_yd_order.openid')
            ->order('id desc,send_address desc')
            ->where($map)
            ->paginate($row,'',['page'=>$body['page']])
            ->each(function($item){
                $item['create_time']=format_time($item['create_time'],'Y-m-d H:i:s');
                if($item['pay_money']<=0){//快递金额是否确认
                    $item['is_fee']=1;
                }else{
                    $item['is_fee']=0;
                }
                return $item;
            });
        $data = $data->toArray();

        return mogo_json($data,'取件列表',1);
    }

    // 业务员确认订单金额
    public function save(){
        // 第一步 过滤字段
        $body = request()->only(['id', 'openid','yj_money']);
        if(empty($body['openid'])) return mogo_error('业务员参数错误',0);
        if(empty($body['id'])) return mogo_error('订单参数错误',0);
        if(empty($body['yj_money'])) return mogo_error('支付费用错误',0);
        if(!preg_match('/^\d{1,9}.{0,1}\d{0,2}$/',$body['yj_money']))
            return mogo_error('支付费用必须位数字,最多保留两位小数',0);
        $ywy=User::get(['openid'=>$body['openid'],'user_type'=>1]);
        if(empty($ywy))  return mogo_error('没有该业务员',0);

        $order=Order::get(['pai_id'=>$ywy['id'],'id'=>$body['id']]);
        if(empty($order))  return mogo_error('没有该订单',0);
        if($order['pay_money']>0)return mogo_error('该订单金额已确认',0);
        $user=User::get(['openid'=>$order['openid']]);
        if(empty($user)) return mogo_error('订单所属用户不存在',0);
        $data=[];
        if($user['member_type']==0){//非会员
            $data['pay_money']=$body['yj_money'];
        }else{
            $huiyuan=Member::get($user['member_type']);//获取申请会员设定
            $data['pay_money']=$body['yj_money']-round(($body['yj_money']*$huiyuan['yh_fee'])/100,2);
        }
        $data['id']=$body['id'];
        $data['yj_money']=$body['yj_money'];
//        halt($data);
        // 第三部 存储字段
        $res = Order::update($data);
        // 第四部 返回结果
        return mogo_json($res,'确认寄件金额',1);
    }

    // 业务员导航取件
    public function map(){

        $body = request()->only(['id', 'openid']);
        if(empty($body['id'])) return mogo_error('订单id不能为空',0);
        if(empty($body['openid'])) return mogo_error('业务员id不能为空',0);
        $ywy=User::get(['openid'=>$body['openid'],'user_type'=>1]);
        if(empty($ywy))  return mogo_error('没有该业务员',0);
        $order=Order::get(['pai_id'=>$ywy['id'],'id'=>$body['id']]);
        if(empty($order))  return mogo_error('没有该订单',0);
        //获取发件地址经纬度
        $arr=getLatLng($order['send_address'],'tengxun');
        // 这里可以做一些处理
        return mogo_json($arr,'导航经纬度',1);
    }

    // 删除订单
    public function delete($id){
        $body = request()->only(['id', 'openid']);
        if(empty($body['id'])) return mogo_error('订单id不能为空',0);
        if(empty($body['openid'])) return mogo_error('业务员id不能为空',0);
        $ywy=User::get(['openid'=>$body['openid'],'user_type'=>1]);
        if(empty($ywy))  return mogo_error('没有该业务员',0);
        $order=Order::get(['pai_id'=>$ywy['id'],'id'=>$body['id']]);
        if(empty($order))  return mogo_error('没有该订单',0);


    }


}